// promisify函数可以将Node.js中的回调风格函数转换为返回Promise的函数。我们可以使用promisify函数将Node.js的fs.writeFile方法转换为一个返回Promise的函数。

/**
 * 
 
实现步骤
创建一个promisify函数，它接受一个回调风格的函数作为参数并返回一个新的函数，该新函数返回一个Promise。
使用promisify函数将fs.writeFile方法转换为一个返回Promise的函数

 */

const fs = require("fs");

function promisify(fn) {
  return function (...args) {
    return new Promise((resolve, reject) => {
      fn(...args, (err, result) => {
        if (err) {
          reject(err);
        } else {
          resolve(result);
        }
      });
    });
  };
}

// 将 fs.writeFile 方法 Promise 化
const writeFileAsync = promisify(fs.writeFile);

// 使用 writeFileAsync 写文件
const filePath = "example.txt";
const fileContent = "Hello, world!";

writeFileAsync(filePath, fileContent, "utf8")
  .then(() => {
    console.log("File written successfully");
  })
  .catch((err) => {
    console.error("Error writing file:", err);
  });
